Skip to content

Improvement/sdk enhancements#8

Open
marianmelnychuk wants to merge 4 commits intodevelopfrom
improvement/sdk-enhancements
Open

Improvement/sdk enhancements#8
marianmelnychuk wants to merge 4 commits intodevelopfrom
improvement/sdk-enhancements

Conversation

@marianmelnychuk
Copy link
Collaborator

This PR modernizes and extends the Java SDK by replacing the Jackson dependency with json-simple for more resilient JSON parsing, deprecating unsupported or undocumented API endpoints, fixing several request inconsistencies, and adding new message operations (summary, headers, text variants, and streaming). It also improves test resilience and introduces automatic SDK versioning in the User-Agent header. SDK version updated from 2.2 → 2.5.0.

- Remove jersey-media-json-jackson dependency
- Add com.googlecode.json-simple:json-simple:1.1.1
- Add JsonUtils helper class for safe JSON parsing
- Rewrite all 37 model/DTO classes with fromJson()/toJSON()
- Rewrite all 30 request classes to use String response + fromJson()
- Fixes UnrecognizedPropertyException on API schema changes
- Bump version from 2.2 to 2.3.0
Deprecated:
- All Rule management requests (CreateRuleRequest, DeleteRuleRequest,
  DisableRuleRequest, EnableRuleRequest, GetRuleRequest, GetRulesRequest)
- Domain management requests (CreateDomainRequest, DeleteDomainRequest)
- Authenticator endpoints absent from current OpenAPI spec
  (GetAuthenticatorRequest, GetAuthenticatorByIdRequest, GetAuthenticatorsRequest)
- Legacy wildcard message endpoints that return server errors
  (GetLatestMessagesRequest, GetLatestInboxMessagesRequest)

Added:
- GetSmsInboxRequest: full query param support (skip, limit, sort,
  decode_subject, cursor, full, wait, delete) aligned with OpenAPI spec
- GetInboxMessageRequest: optional `delete` query parameter

Fixed:
- GetDomainsRequest: removed trailing slash from /domains/
- USER_AGENT bumped to Mailinator SDK - Java V2.4
- Version bumped to 2.4.0
… versioning (v2.5.0)

Added
- GetMessageSummaryRequest + MessageSummaryResponse / MessageSummary: fetch a message summary (GET /api/v2/domains/{domain}/messages/{id}/summary).
- GetMessageTextRequest + MessageTextResponse: fetch the text body of a message (GET /api/v2/domains/{domain}/messages/{id}/text).
- GetMessageTextPlainRequest: fetch the plain-text variant of a message body (GET /api/v2/domains/{domain}/messages/{id}/textplain), returns raw JSONObject.
- GetMessageTextHtmlRequest: fetch the HTML variant of a message body (GET /api/v2/domains/{domain}/messages/{id}/texthtml), returns raw JSONObject.
- GetMessageHeadersRequest + MessageHeadersResponse: fetch all message headers (GET /api/v2/domains/{domain}/messages/{id}/headers).
- GetStreamDomainMessagesRequest: long-poll stream for the next message arriving in any inbox of a domain (GET /api/v2/domains/{domain}/stream). Pings are transparently skipped; result is returned as an Inbox.
- GetStreamInboxMessagesRequest: long-poll stream for the next message arriving in a specific inbox (GET /api/v2/domains/{domain}/stream/{inbox}).
- New integration tests for all seven request classes above, gated on MAILINATOR_TEST_REAL_MESSAGE_ID (or existing env vars where applicable).
- MAILINATOR_TEST_REAL_MESSAGE_ID constant added to TestEnv.
- Test resilience for plan-limited features: stream tests gated on MAILINATOR_TEST_ENABLE_STREAM, attachment/text/headers/summary tests skip gracefully on HTTP 500, delete/wait params skip if not honored.

Fixed
- GetInboxRequest: when inbox is null, the URL template now resolves to * (i.e. /inboxes/*) instead of an empty path segment, matching the Mailinator wildcard-inbox convention.
- User-Agent header version is now derived automatically from the POM version via Maven resource filtering — the string Mailinator SDK - Java V{version} is resolved at build time, so no manual update is required on each release.
- Version bumped to 2.5.0

Changed
- Deprecated test classes now carry @disabled annotations with descriptive messages so they are skipped rather than executed: all six rule tests, CreateDomainRequestTest, DeleteDomainRequestTest, GetAuthenticatorsRequestTest, GetAuthenticatorRequestTest, GetAuthenticatorByIdRequestTest, GetLatestMessagesRequestTest, GetLatestInboxMessagesRequestTest.
Copilot AI review requested due to automatic review settings March 23, 2026 16:46
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR modernizes the Mailinator Java SDK by removing Jackson-based POJO binding in favor of json-simple + explicit parsing helpers, deprecating unsupported endpoints, adding several new message retrieval operations (summary/headers/text variants and streaming), and updating integration tests and SDK versioning.

Changes:

  • Replace Jackson dependency/POJO binding with json-simple, introducing JsonUtils and fromJson(...) / toJSON() patterns across models and requests.
  • Add new message APIs: stream domain/inbox, message summary, message headers, and message text endpoints (including plain/html variants).
  • Improve integration test gating/resilience (env var lookups, graceful skips on plan-limited behavior) and add automatic SDK versioning in User-Agent.

Reviewed changes

Copilot reviewed 125 out of 125 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
src/test/java/com/manybrain/mailinator/client/webhook/PrivateWebhookRequestTest.java Use env var value (via System.getenv) for webhook token in tests.
src/test/java/com/manybrain/mailinator/client/webhook/PrivateInboxWebhookRequestTest.java Use env var values for webhook token + inbox.
src/test/java/com/manybrain/mailinator/client/webhook/PrivateCustomServiceWebhookRequestTest.java Use env var values for webhook token + custom service.
src/test/java/com/manybrain/mailinator/client/webhook/PrivateCustomServiceInboxWebhookRequestTest.java Use env var values for webhook token + custom service + inbox.
src/test/java/com/manybrain/mailinator/client/rule/GetRulesRequestTest.java Disable deprecated rules test.
src/test/java/com/manybrain/mailinator/client/rule/GetRuleRequestTest.java Disable deprecated rule test.
src/test/java/com/manybrain/mailinator/client/rule/EnableRuleRequestTest.java Disable deprecated enable-rule test.
src/test/java/com/manybrain/mailinator/client/rule/DisableRuleRequestTest.java Disable deprecated disable-rule test.
src/test/java/com/manybrain/mailinator/client/rule/DeleteRuleRequestTest.java Disable deprecated delete-rule test.
src/test/java/com/manybrain/mailinator/client/rule/CreateRuleRequestTest.java Disable deprecated create-rule test.
src/test/java/com/manybrain/mailinator/client/message/GetStreamInboxMessagesRequestTest.java New integration test for inbox stream endpoint (env-gated).
src/test/java/com/manybrain/mailinator/client/message/GetStreamDomainMessagesRequestTest.java New integration test for domain stream endpoint (env-gated).
src/test/java/com/manybrain/mailinator/client/message/GetMessageTextRequestTest.java New integration test for message /text endpoint with graceful skip on 500.
src/test/java/com/manybrain/mailinator/client/message/GetMessageTextPlainRequestTest.java New integration test for message /textplain endpoint with graceful skip on 500.
src/test/java/com/manybrain/mailinator/client/message/GetMessageTextHtmlRequestTest.java New integration test for message /texthtml endpoint with graceful skip on 500.
src/test/java/com/manybrain/mailinator/client/message/GetMessageSummaryRequestTest.java New integration test for message /summary endpoint with graceful skip on 500.
src/test/java/com/manybrain/mailinator/client/message/GetMessageRequestTest.java Make delete/wait behavior assertions more resilient (skip when not supported).
src/test/java/com/manybrain/mailinator/client/message/GetMessageHeadersRequestTest.java New integration test for message /headers endpoint with graceful skip on 500.
src/test/java/com/manybrain/mailinator/client/message/GetMessageAttachmentsRequestTest.java Gracefully skip when attachment message retrieval returns 500.
src/test/java/com/manybrain/mailinator/client/message/GetLatestMessagesRequestTest.java Disable deprecated latest-messages test.
src/test/java/com/manybrain/mailinator/client/message/GetLatestInboxMessagesRequestTest.java Disable deprecated latest-inbox-messages test.
src/test/java/com/manybrain/mailinator/client/message/GetInboxRequestTest.java Gracefully skip when wait query param isn’t supported.
src/test/java/com/manybrain/mailinator/client/message/GetInboxMessageAttachmentsRequestTest.java Gracefully skip when attachment message retrieval returns 500.
src/test/java/com/manybrain/mailinator/client/domain/DeleteDomainRequestTest.java Disable deprecated domain-delete test.
src/test/java/com/manybrain/mailinator/client/domain/CreateDomainRequestTest.java Disable deprecated domain-create test.
src/test/java/com/manybrain/mailinator/client/authenticator/InstantTOTP2FACodeRequestTest.java Use env var value for auth secret.
src/test/java/com/manybrain/mailinator/client/authenticator/GetAuthenticatorsRequestTest.java Disable deprecated authenticators-list test.
src/test/java/com/manybrain/mailinator/client/authenticator/GetAuthenticatorsByIdRequestTest.java Use env var value for authenticator ID.
src/test/java/com/manybrain/mailinator/client/authenticator/GetAuthenticatorRequestTest.java Disable deprecated authenticator endpoint test.
src/test/java/com/manybrain/mailinator/client/authenticator/GetAuthenticatorByIdRequestTest.java Disable deprecated authenticator-by-id endpoint test and use env var value when applicable.
src/test/java/com/manybrain/mailinator/client/TestEnv.java Add new env constants and fix getters to return env var values instead of constant names.
src/main/resources/mailinator-sdk.properties New filtered properties file for SDK versioning.
src/main/java/com/manybrain/mailinator/client/webhook/Webhook.java Replace Jackson annotations with toJSON() serialization using json-simple.
src/main/java/com/manybrain/mailinator/client/webhook/PrivateWebhookResponse.java Replace Jackson binding with fromJson(JSONObject) parsing.
src/main/java/com/manybrain/mailinator/client/webhook/PrivateWebhookRequest.java Post JSON strings and parse responses via JsonUtils + fromJson.
src/main/java/com/manybrain/mailinator/client/webhook/PrivateInboxWebhookRequest.java Post JSON strings and parse responses via JsonUtils + fromJson.
src/main/java/com/manybrain/mailinator/client/webhook/PrivateCustomServiceWebhookRequest.java Post webhook bodies as JSON strings (no Jackson).
src/main/java/com/manybrain/mailinator/client/webhook/PrivateCustomServiceInboxWebhookRequest.java Post webhook bodies as JSON strings (no Jackson).
src/main/java/com/manybrain/mailinator/client/stats/TeamInfo.java Replace Jackson binding with fromJson(JSONObject).
src/main/java/com/manybrain/mailinator/client/stats/Team.java Replace Jackson binding with fromJson(JSONObject) and list parsing.
src/main/java/com/manybrain/mailinator/client/stats/StatsItem.java Replace Jackson binding with fromJson(JSONObject).
src/main/java/com/manybrain/mailinator/client/stats/Stats.java Replace Jackson binding with fromJson(JSONObject).
src/main/java/com/manybrain/mailinator/client/stats/SmsNumbersItem.java Replace Jackson binding with fromJson(JSONObject).
src/main/java/com/manybrain/mailinator/client/stats/Sent.java Replace Jackson binding with fromJson(JSONObject).
src/main/java/com/manybrain/mailinator/client/stats/Retrieved.java Replace Jackson binding with fromJson(JSONObject).
src/main/java/com/manybrain/mailinator/client/stats/PrivateDomainsItem.java Replace Jackson binding with fromJson(JSONObject).
src/main/java/com/manybrain/mailinator/client/stats/PlanData.java Replace Jackson binding with fromJson(JSONObject) (and add Lombok @Data).
src/main/java/com/manybrain/mailinator/client/stats/MembersItem.java Replace Jackson binding with fromJson(JSONObject).
src/main/java/com/manybrain/mailinator/client/stats/GetTeamRequest.java Fetch responses as String and parse via JsonUtils + fromJson.
src/main/java/com/manybrain/mailinator/client/stats/GetTeamInfoRequest.java Fetch responses as String and parse via JsonUtils + fromJson.
src/main/java/com/manybrain/mailinator/client/stats/GetStatsRequest.java Fetch responses as String and parse via JsonUtils + fromJson.
src/main/java/com/manybrain/mailinator/client/rule/Rules.java Replace Jackson binding with fromJson(JSONObject).
src/main/java/com/manybrain/mailinator/client/rule/RuleToCreate.java Replace Jackson serialization with toJSON() for request body creation.
src/main/java/com/manybrain/mailinator/client/rule/Rule.java Replace Jackson binding with fromJson(JSONObject) including enum parsing.
src/main/java/com/manybrain/mailinator/client/rule/GetRulesRequest.java Deprecate endpoint and parse response via JsonUtils + fromJson.
src/main/java/com/manybrain/mailinator/client/rule/GetRuleRequest.java Deprecate endpoint and parse response via JsonUtils + fromJson.
src/main/java/com/manybrain/mailinator/client/rule/EnableRuleRequest.java Deprecate endpoint and parse response via JsonUtils + fromJson.
src/main/java/com/manybrain/mailinator/client/rule/DisableRuleRequest.java Deprecate endpoint and parse response via JsonUtils + fromJson.
src/main/java/com/manybrain/mailinator/client/rule/DeleteRuleRequest.java Deprecate endpoint and parse response via JsonUtils + fromJson.
src/main/java/com/manybrain/mailinator/client/rule/CreateRuleRequest.java Deprecate endpoint; serialize request body via toJSON() and parse response via fromJson.
src/main/java/com/manybrain/mailinator/client/rule/ConditionData.java Replace Jackson binding with fromJson and add toJSON().
src/main/java/com/manybrain/mailinator/client/rule/Condition.java Replace Jackson binding with fromJson and add toJSON().
src/main/java/com/manybrain/mailinator/client/rule/ActionData.java Replace Jackson binding with fromJson and add toJSON().
src/main/java/com/manybrain/mailinator/client/rule/Action.java Replace Jackson binding with fromJson and add toJSON().
src/main/java/com/manybrain/mailinator/client/message/SmtpLog.java Replace Jackson binding with fromJson(JSONObject).
src/main/java/com/manybrain/mailinator/client/message/PostedMessage.java Replace Jackson binding with fromJson(JSONObject).
src/main/java/com/manybrain/mailinator/client/message/Part.java Replace Jackson binding with fromJson(JSONObject).
src/main/java/com/manybrain/mailinator/client/message/MessageToPost.java Replace Jackson serialization with toJSON() for request body creation.
src/main/java/com/manybrain/mailinator/client/message/MessageTextResponse.java New DTO + fromJson(JSONObject) for /text endpoint.
src/main/java/com/manybrain/mailinator/client/message/MessageSummaryResponse.java New DTO + fromJson(JSONObject) for /summary endpoint.
src/main/java/com/manybrain/mailinator/client/message/MessageSummary.java New DTO + fromJson(JSONObject) for summary payload.
src/main/java/com/manybrain/mailinator/client/message/MessageHeadersResponse.java New DTO + fromJson(JSONObject) for /headers endpoint.
src/main/java/com/manybrain/mailinator/client/message/Message.java Replace Jackson binding with fromJson(JSONObject) for message payloads.
src/main/java/com/manybrain/mailinator/client/message/LinksFull.java Replace Jackson binding with fromJson(JSONObject).
src/main/java/com/manybrain/mailinator/client/message/Links.java Replace Jackson binding with fromJson(JSONObject).
src/main/java/com/manybrain/mailinator/client/message/LinkEntity.java Replace Jackson binding with fromJson(JSONObject).
src/main/java/com/manybrain/mailinator/client/message/Inbox.java Replace Jackson binding with fromJson(JSONObject).
src/main/java/com/manybrain/mailinator/client/message/GetStreamInboxMessagesRequest.java New request for inbox-scoped stream endpoint.
src/main/java/com/manybrain/mailinator/client/message/GetStreamDomainMessagesRequest.java New request + NDJSON parsing for domain stream endpoint.
src/main/java/com/manybrain/mailinator/client/message/GetSmsInboxRequest.java Add full query parameter support; parse via JsonUtils + fromJson.
src/main/java/com/manybrain/mailinator/client/message/GetMessageTextRequest.java New request for /text endpoint; parse via JsonUtils + DTO fromJson.
src/main/java/com/manybrain/mailinator/client/message/GetMessageTextPlainRequest.java New request for /textplain endpoint returning JSONObject.
src/main/java/com/manybrain/mailinator/client/message/GetMessageTextHtmlRequest.java New request for /texthtml endpoint returning JSONObject.
src/main/java/com/manybrain/mailinator/client/message/GetMessageSummaryRequest.java New request for /summary endpoint; parse via JsonUtils + DTO fromJson.
src/main/java/com/manybrain/mailinator/client/message/GetMessageSmtpLogRequest.java Parse response via JsonUtils + fromJson.
src/main/java/com/manybrain/mailinator/client/message/GetMessageRequest.java Parse response via JsonUtils + fromJson.
src/main/java/com/manybrain/mailinator/client/message/GetMessageLinksRequest.java Parse response via JsonUtils + fromJson.
src/main/java/com/manybrain/mailinator/client/message/GetMessageLinksFullRequest.java Parse response via JsonUtils + fromJson.
src/main/java/com/manybrain/mailinator/client/message/GetMessageHeadersRequest.java New request for /headers endpoint; parse via JsonUtils + DTO fromJson.
src/main/java/com/manybrain/mailinator/client/message/GetMessageAttachmentsRequest.java Parse response via JsonUtils + fromJson.
src/main/java/com/manybrain/mailinator/client/message/GetLatestMessagesRequest.java Deprecate and parse response via JsonUtils + fromJson.
src/main/java/com/manybrain/mailinator/client/message/GetLatestInboxMessagesRequest.java Deprecate and parse response via JsonUtils + fromJson.
src/main/java/com/manybrain/mailinator/client/message/GetInboxRequest.java Fix wildcard inbox handling (*) and parse via JsonUtils + fromJson.
src/main/java/com/manybrain/mailinator/client/message/GetInboxMessageSmtpLogRequest.java Parse response via JsonUtils + fromJson.
src/main/java/com/manybrain/mailinator/client/message/GetInboxMessageRequest.java Add delete query param support; parse via JsonUtils + fromJson.
src/main/java/com/manybrain/mailinator/client/message/GetInboxMessageLinksRequest.java Parse response via JsonUtils + fromJson.
src/main/java/com/manybrain/mailinator/client/message/GetInboxMessageAttachmentsRequest.java Parse response via JsonUtils + fromJson.
src/main/java/com/manybrain/mailinator/client/message/EmailLogEntry.java Replace Jackson binding with fromJson(JSONObject).
src/main/java/com/manybrain/mailinator/client/message/DeletedMessages.java Replace Jackson binding with fromJson(JSONObject).
src/main/java/com/manybrain/mailinator/client/message/DeleteMessageRequest.java Parse response via JsonUtils + fromJson.
src/main/java/com/manybrain/mailinator/client/message/DeleteInboxMessagesRequest.java Parse response via JsonUtils + fromJson.
src/main/java/com/manybrain/mailinator/client/message/DeleteDomainMessagesRequest.java Parse response via JsonUtils + fromJson.
src/main/java/com/manybrain/mailinator/client/message/Attachments.java Replace Jackson binding with fromJson(JSONObject).
src/main/java/com/manybrain/mailinator/client/message/Attachment.java Replace Jackson binding with fromJson(JSONObject).
src/main/java/com/manybrain/mailinator/client/domain/GetDomainsRequest.java Fix URL path and parse response via JsonUtils + fromJson.
src/main/java/com/manybrain/mailinator/client/domain/GetDomainRequest.java Parse response via JsonUtils + fromJson.
src/main/java/com/manybrain/mailinator/client/domain/Domains.java Replace Jackson binding with fromJson(JSONObject).
src/main/java/com/manybrain/mailinator/client/domain/Domain.java Replace Jackson binding with fromJson(JSONObject).
src/main/java/com/manybrain/mailinator/client/domain/DeleteDomainRequest.java Deprecate endpoint and parse via JsonUtils + fromJson.
src/main/java/com/manybrain/mailinator/client/domain/CreateDomainRequest.java Deprecate endpoint and parse via JsonUtils + fromJson.
src/main/java/com/manybrain/mailinator/client/authenticator/InstantTOTP2FACodeResponse.java Replace Jackson binding with fromJson(JSONObject).
src/main/java/com/manybrain/mailinator/client/authenticator/InstantTOTP2FACodeRequest.java Parse response via JsonUtils + fromJson.
src/main/java/com/manybrain/mailinator/client/authenticator/GetAuthenticatorsResponse.java Replace Jackson binding with fromJson(JSONObject).
src/main/java/com/manybrain/mailinator/client/authenticator/GetAuthenticatorsRequest.java Deprecate endpoint and parse response via JsonUtils + fromJson.
src/main/java/com/manybrain/mailinator/client/authenticator/GetAuthenticatorsByIdRequest.java Parse response via JsonUtils + fromJson.
src/main/java/com/manybrain/mailinator/client/authenticator/GetAuthenticatorRequest.java Deprecate endpoint and parse response via JsonUtils + fromJson.
src/main/java/com/manybrain/mailinator/client/authenticator/GetAuthenticatorByIdRequest.java Deprecate endpoint and parse response via JsonUtils + fromJson.
src/main/java/com/manybrain/mailinator/client/authenticator/Authenticator.java Normalize fields and parse via fromJson(JSONObject).
src/main/java/com/manybrain/mailinator/client/ResponseStatus.java Replace Jackson binding with fromJson(JSONObject).
src/main/java/com/manybrain/mailinator/client/JsonUtils.java New helper utilities for json-simple parsing and typed getters.
src/main/java/com/manybrain/mailinator/client/JerseyClient.java Remove Jackson features and derive User-Agent version from filtered resource file.
src/main/java/com/manybrain/mailinator/client/JacksonObjectMapperProvider.java Remove Jackson ObjectMapper provider.
pom.xml Bump version, swap Jackson dependency for json-simple, enable resource filtering.
CHANGELOG.md Add changelog documenting 2.3.0–2.5.0 changes and deprecations.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +37 to +39
String response = webTarget.request(MediaType.APPLICATION_JSON_TYPE)
.post(Entity.entity(webhook.toJSON().toJSONString(), MediaType.APPLICATION_JSON_TYPE), String.class);
return PrivateWebhookResponse.fromJson(JsonUtils.parseObject(response));
Copy link

Copilot AI Mar 23, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

execute() calls WEB_TARGET.resolveTemplate("wh-token", ...), but the URL constant has no {wh-token} template. In Jersey this typically throws IllegalArgumentException at runtime. Remove the resolveTemplate("wh-token", ...) call (the token is already passed via the whtoken query param), or add the matching {wh-token} placeholder to the URL if it’s actually required.

Copilot uses AI. Check for mistakes.
Comment on lines +39 to +41
String response = webTarget.request(MediaType.APPLICATION_JSON_TYPE)
.post(Entity.entity(webhook.toJSON().toJSONString(), MediaType.APPLICATION_JSON_TYPE), String.class);
return PrivateWebhookResponse.fromJson(JsonUtils.parseObject(response));
Copy link

Copilot AI Mar 23, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

execute() resolves a wh-token URI template (resolveTemplate("wh-token", ...)) even though the URL only defines {inbox}. This is likely to throw at runtime or silently do nothing depending on the JAX-RS implementation. Remove the wh-token template resolution and rely on the existing whtoken query param (or update the URL to include {wh-token} if intended).

Copilot uses AI. Check for mistakes.
Comment on lines 38 to 40
return webTarget.request(MediaType.APPLICATION_JSON_TYPE)
.post(Entity.json(webhook), String.class);
.post(Entity.entity(webhook.toJSON().toJSONString(), MediaType.APPLICATION_JSON_TYPE), String.class);
}
Copy link

Copilot AI Mar 23, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The request builds webTarget using resolveTemplate("wh-token", ...), but the URL only contains {customService}. This mismatch can throw IllegalArgumentException in JAX-RS. Drop the wh-token template resolution and keep passing the token via whtoken query param (or update the URL to include {wh-token} if that’s the actual endpoint shape).

Copilot uses AI. Check for mistakes.
Comment on lines 41 to 43
return webTarget.request(MediaType.APPLICATION_JSON_TYPE)
.post(Entity.json(webhook), String.class);
.post(Entity.entity(webhook.toJSON().toJSONString(), MediaType.APPLICATION_JSON_TYPE), String.class);
}
Copy link

Copilot AI Mar 23, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

webTarget is created with resolveTemplate("wh-token", ...) but the URL defines only {customService} and {inbox}. This template mismatch can fail at runtime. Remove resolveTemplate("wh-token", ...) and use the already-present whtoken query param (or update the URL to include {wh-token} if required).

Copilot uses AI. Check for mistakes.
Fixed:

- PrivateWebhookRequest: removed incorrect resolveTemplate("wh-token", ...) call and properly use whtoken query parameter.
- Version bumped to 2.5.1.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants